Jak odchytit nasilne ukonceni aplikace

Otázka od: Miroslav Novosad

1. 9. 2002 11:52

Ahoj,

potreboval bych nakopnout, jak poznam, ze program je ukoncovan z Task
Manageru pripadne jinak "neprirozene".


Miroslav Novosad
mirnov@atlas.cz

Odpovedá: Petr Vones

1. 9. 2002 12:34

From: "Miroslav Novosad" <mirnov@atlas.cz>
> potreboval bych nakopnout, jak poznam, ze program je ukoncovan z Task
> Manageru pripadne jinak "neprirozene".

Pokud se jedna o ukonceni pomoci TerminateProcess tak nijak.

Petr Vones

Odpovedá: Lada 'Ray' Lostak

2. 9. 2002 10:59

>Pokud se jedna o ukonceni pomoci TerminateProcess tak nijak.
No, to neni tak uplne pravda. Pokud tvuj program zpracovava smysku zprav a
neni bloklej, tak konkretne ProgramManager posila SC_CLOSE, ceka 5 sekund a
pokud se nereaguje, ukaze okno o ukonkceni a pak zavola TerminaThread (coz
skutecne nepoznas).

Pokud teda zpracovavas smycku zprav top level okna, potom staci, kdyz se
podivas po tride program managera a melo by ti to fungovat. Ale stejne nemas
na zareagovani moc casu, on to okno zobrazi po (tusim) 10 sekundach, kdyz
ten process zpracovava smycku zprav, jinak po 5ti, takze defacto ukonceni
stejne neodvratis. Zavreni managerem se nelisi od zavreni prez top level
okno "Zavrit". Proste SC_CLOSE.

Pokud ses mimo smycku, pak nemas sanci to jakkoliv legalne poznat.

Best regards,
Lada 'Ray' Lostak
Unreal64 Develop group
http://www.unreal64.net

Odpovedá: Lada 'Ray' Lostak

2. 9. 2002 10:43

Jen podotykam, ze jsem mluvil o task manageru. Jiny programy (treba PVIew a
pod.) killujou rovnou. Tam neni samozrejmne co resit (to mi na program
manageru chyby, ze napr. nedokaze odstrelit nic rovnou, kdyz CHCI prijit o
zmeny napr.  

Best regards,
Lada 'Ray' Lostak
Unreal64 Develop group
http://www.unreal64.net

Odpovedá: ing. Jan Fiala

2. 9. 2002 10:24

Pokud jej "odstrelis" ve spravci uloh/procesy tak k zadnemu cekani
nedojde.

--
ing. Jan Fiala
mailto:jan.fiala@iol.cz

2.9.2002 Lada 'Ray' Lostak:
>>Pokud se jedna o ukonceni pomoci TerminateProcess tak nijak.
> No, to neni tak uplne pravda. Pokud tvuj program zpracovava smysku zprav a
> neni bloklej, tak konkretne ProgramManager posila SC_CLOSE, ceka 5 sekund a
> pokud se nereaguje, ukaze okno o ukonkceni a pak zavola TerminaThread (coz
> skutecne nepoznas).

Odpovedá: Lada 'Ray' Lostak

2. 9. 2002 12:57

>Pokud jej "odstrelis" ve spravci uloh/procesy tak k zadnemu cekani
>nedojde.
Jo mas recht, pokud ses na tabu "Procesy" tak to sestreli hned, na to jsem
zapomel. Pokud se to udela z "Aplikace" (tedy to co ma top level okno), pak
se to chova jak jsem napsal.

Best regards,
Lada 'Ray' Lostak
Unreal64 Develop group
http://www.unreal64.net